SWE 510 -
Object-Oriented Programming in Java
-
Spring 2011
Section 001: (12501) Thu. 7:20-10:00,
Krug Hall 242
Syllabus version as of 2011-02-02
Dr. David A. Wheeler, Adjunct Professor
Office: By appointment
email: dwheele4@gmu.edu
703-845-6662
TA: Aniket Kharat
Office Hours: 3-4pm Thursdays &
by appointment
email:
akharat@masonlive.gmu.edu
SWE 510 Object-Oriented Programming in Java (3:3:0). Prerequisite: Undergraduate courses or equivalent knowledge in programming in a high-level language. This course introduces students to programming in the Java language. Topics include problem-solving methods and algorithm development, program structures, abstract data types, simple data and file structures, and program development in a modular, object-oriented manner. Introductory use of OO language features, including data hiding, inheritance, polymorphism, and exception handling. Goals include design and development of Java classes and class type hierarchies. An introduction to Java servlets and applets is included. Emphasis on program development is reinforced through several programming projects. Credit cannot be applied to any graduate degree in IT&E or the BS degree in computer science.
On
completion of the course, students should:
·
Have
a good understanding of the principles and concepts of object-oriented
programming;
·
Be
able to solve computation problems in an object-oriented manner;
·
Be
able to apply object oriented concepts, such as inheritance, polymorphism,
abstract classes and interfaces, and packages in program design; and
·
Be
able to describe the program design using a notation that is based on Unified
Modeling Language (UML).
Savitch,
Walter, Absolute Java, 4th Edition, Addison Wesley, ISBN: 978-0136083825. Please get your own copy; in a pinch, one
copy of the text is on reserve at the Johnson Center Library and may be
borrowed for 2 hours at a time using call number QA76.73.J38 S265 2010.
Grady
Booch, James Rumbaugh, and Ivar Jacobson, The Unified Modeling Language Users
Guide, 2nd Edition, Addison-Wesley, 2005.
|
Assignments |
40% |
Four
assignments, see below. |
|
Midterm
Exam |
30% |
March
24 |
|
Final
Exam |
30% |
May
12 |
Late assignments
grading policy:
·
An
assignment that is submitted late but before the TA sends back the grades: The assignment would be graded out of 80% of
the assignment total.
·
An
assignment that is submitted late after the TA sends back the grades: The assignment would be graded out of 60% of
the assignment total. If it’s more than
a week after the TA sends back grades, it will not normally be accepted (talk
to me if you have extraordinary circumstances).
Talk to
me ahead-of-time if you have an anticipated absence that will interfere with
class (especially exams), e.g., a non-work religious holiday, out-of-town
travel for work, GMU athletic meet, and so on.
Web presence:
I have
set up a Blackboard 9 area for the class where the presentations, syllabus, and
other material will be placed. As they
are updated for any reason, the updates will be placed there as well. To get there, open:
Select the
“Courses” tab (on the top right of the page), look in the middle area, and
select “201110.12501: SWE-510-001 (Spring 2011)”; this is a blackboard version
9 area. I know that Firefox works well
as a web browser for it.
Do not select the right-hand-side “CE
Course List” and/or any other link beginning with
<https://courses.gmu.edu/>. The
courses.gmu.edu system is the old Blackboard version 8 system, which is not the system we are using. If you try to use this (wrong) system, it
will eventually say that the course area is blank (which it is, because you are
using the wrong one). The old one may first complain that the certificate has
expired.
Lecture |
Reading that week & module to be presented
that day |
2011-01-27 |
CANCELLED DUE TO WEATHER |
2011-02-03 |
Read & understand chapters 1 (Getting Started) & 2 (Console
Input and Output). Also, set up your
Java development environment!
Presented that day: Module 1W & Module 3 |
2011-02-10 |
Chapter 3 (Flow of Control), Module 4 |
2011-02-17 |
Chapters 4 & 5 (Defining Classes), Module 4W [based on Module 2
& 2-2] |
2011-02-24 |
Chapters 6 (Arrays) & 7 (Inheritance); Modules 5 & 6. DUE: Assignment #1 |
2011-03-03 |
Chapter 8 (Polymorphism and Abstract Classes); Module 7 |
2011-03-10 |
Chapter 9 (Exception Handling); Module 8. DUE: Assignment #2 |
2011-03-17 |
(No class, Spring break) |
2011-03-24 |
MIDTERM |
2011-03-31 |
Chapter 10 (File I/O); Module 9 |
2011-04-07 |
Chapter 11 (Recursion) & Chapter 12 (UML and Patterns); Module 10
+ UML/Pattern material |
2011-04-14 |
Chapter 13.1 (Interfaces), 14 (Generics and the ArrayList
Class). DUE: Assignment #3 |
2011-04-21 |
Chapter 15 (Linked Data Structures) |
2011-04-28 |
Chapter 16 (Collections, Maps and Iterators); Module 11 |
2011-05-05 |
Chapter 17.1-17.2 (Event-Driven programming/GUI Swing basics) &
Chapter 19.5 (Web programming). DUE:
Assignment #4 |
2011-05-12 |
FINAL EXAM |
The
schedule and topics to be covered is subject to change to best serve the needs
of the class. The “modules” are the
presentations. My plan is to give a
presentation, and for you to then read the book; the presentations will
tend to cover the important and potentially-confusing topics, so that when you
read the book you’ll be better prepared.
(This is a different approach than some other courses, but I think it
will be effective.) Some draft
presentations (modules) are already available, though I may update them before
they are presented.
Please
do the “self-test exercises” in each chapter, and compare them with the answers
at the end of each chapter. These
exercises will not be reviewed or graded, but they will help you understand the
material (and notice when you don’t!).
Do read the “starred” items (this is a graduate class).
For
general GMU information, see the 2011 spring calendar at: http://registrar.gmu.edu/calendars/2011Spring.html
Java software development environment
As
soon as possible, set up a Java software development environment, so you can
develop and test Java programs. Do
not wait. Once you think you have a
working environment, try to compile and run a simple “Hello World” application
so that you can get things working.
Here’s a Java implementation of “Hello World”:
class HelloWorldApp {
public static void main(String[]
args) {
System.out.println("Hello
World!");
}
}
For
many, an easy way to create a Java software development environment is to use a
personal computer you already have access to (typically running Linux, Unix,
Microsoft Windows, or MacOS), and install the Java Software Development Kit
(SDK) Standard Edition (SE) from Oracle (nee Sun). You can get a Java SDK SE at <http://www.oracle.com/technetwork/java/javase/downloads/index.html>. The same site has installation instructions;
follow them. Note that you need the SDK,
not just the Java Runtime Environment (JRE).
The JRE lets you run programs, but we will be creating programs
not just running them. This works on a
variety of environments. They provide
Linux versions, but Linux users may find it easier to download and install a
Java development environment using their package management system (e.g., “yum”
for Red Hat Enterprise Linux, Fedora, and Novell SuSE; “apt-get” for Debian and
Ubuntu). There are other Java
implementations; you can use them, but be sure they implement Java 5.
You
need a way to edit Java source code.
Unix systems (including MacOS) have lots of great text editors
available, just use one of them. Windows
users could use the text editor “Note Pad”, but it’s terrible, and WordPad (if
you have it) is only marginally better.
For Windows, the book CD’s trial version of “TextPad” (in
\AdditionalIDEs\TextPad_TRIAL) is a simple editing environment; you can edit
files, and choose Tools/External Tools to compile or run Java programs. There are shortcut keys; control-1 is
“compile” and control-2 is “run application”.
Warning: After editing, be sure to compile before running; running the program
runs the last compiled version (not necessarily what you just edited). Be sure that every source file has the name
of the outer class (with the same upper/lowercase) followed by “.java” – for
example, “HelloWorldApp.java”.
Some
developers prefer to use a graphical Interactive Development Environment
(IDE). A very popular IDE for Java is
Eclipse, which is open source software (OSS).
You can download it from <http://www.eclipse.org/downloads/>;
you probably want the “Eclipse IDE for Java Developers” (an alternative is the
“Eclipse IDE for Java EE Developers”; that would work fine, but includes a lot
of extra components that you don’t need for the class). It’s a good IDE, but beware that it may take you
extra time to learn how to use the IDE!
The Eclipse documentation is at <http://www.eclipse.org/documentation>. On a Linux system, just install the eclipse
package. On Windows, unpack the “.zip” directory
to some directory (I suggest “C:\eclipse”); to run it you run the “eclipse.exe”
program inside (you can create a shortcut to this to make it easier). When you first run it, it will ask for a
“workspace” directory. Try out the
built-in Eclipse Java tutorial, which will show you how to do basic stuff (like
use File->New->Java Project to start a new project). Some videos you may
find helpful are at <http://eclipsetutorial.sourceforge.net/totalbeginner.html>.
If
you don’t want to use your own system, you can use GMU’s research systems, such
as mason.gmu.edu or an IT&E computer lab account. For more info, see <http://www.cs.gmu.edu/wiki/pmwiki.php/ComputerAccounts/HomePage>
and <https://mason.gmu.edu/ISO/SysEng/Mason/welcome.html>.
IEEE and ACM codes of ethics are at these
URLs:
http://www.ieee.org/portal/pages/iportals/aboutus/ethics/code.html
http://www.acm.org/serving/se/code.htm
Do not
plagerize. Plagerism is copying anyone
else’s work and claiming it as your own work.
For assignments, do your own work
and do not copy anyone else’s work
(including from classmates and the Internet).
Miscellaneous notes
In class, please
pay attention and don’t distract others. Please configure cell phones to
vibrate, and if you use a laptop to take notes, please don't surf the net
(unless told otherwise).
If you have a
learning or physical difference that may affect your academic work, you will
need to furnish appropriate documentation to the Office of Disability Services
(ODS); you can contact them at http://ods.gmu.edu or at 703-993-2474. If you
qualify for accommodation, the ODS staff will give you a form detailing
appropriate accommodations for your instructor (me).
2010-2011 by Dr. Moataz Ahmed & Dr. David A. Wheeler, Department of Computer Science, George Mason University
This syllabus was originally developed by Dr. Moataz A.
Ahmed, Adjunct Professor, mahmed5@gmu.edu